#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;



class Date {
	friend ostream& operator<< (ostream& out, const Date& d);
public:
	Date(int year = 1900,int month = 1, int day = 1)
		:_year(year)
		,_month(month)
		,_day(day)
	{}

	/*void Print()const
	{
		cout << _year << "/" << _month << "/" << _day << endl;
	}*/

	void Print()
	{
		cout << _year << "/" << _month << "/" << _day << endl;
	}

	Date& operator=(const Date& d)
	{
		_year = d._year;
		_month = d._month;
		_day = d._day;
		return *this;
	}

//private:
	int _year;
	int _month;
	int _day;

};

//Date& operator=(Date& _this,const Date& d)
//{
//	_this._year = d._year;
//	_this._month = d._month;
//	_this._day = d._day;
//	return _this;
//}

ostream& operator<< (ostream& out, const Date& d)
{
	out << d._year <<"/" <<  d._month << "/" << d._day;
	return out;
}

int main()
{
	Date d1;
	Date d2(2023, 8, 9);
	Date d3;
	//d1 = d2;
	d1.Print();
	d3.Print();
	/*cout << d1 << "  " << d2 << endl;*/
	/*int x = 10;
	auto a = &x;
	auto* b = &x;
	auto& c = x;
	cout << typeid(a).name() << endl;
	cout << typeid(b).name() << endl;
	cout << typeid(c).name() << endl;*/


	/*auto a = 1, b = 2;
	auto c = 1.1, d = 2.2;
	cout << a << " " << b << endl;
	cout << c << " " << d << endl;*/


	/*auto a = 1, b = 2;
	auto c = 1.1, d = 2.2;
	cout << a << " " << b << endl;
	cout << c << " " << d << endl;*/

	

	return 0;
}


